const StudyMongo = require("@mongodb/study/index")
const BaseServer = require("../base/baseServer")

class Server extends BaseServer{

	constructor() {
		super()
	}

	/**
	 * 获取学习数据
	 * @param num 要获取的条数
	 * @returns {Promise<void>}
	 */
	static async meData (num) {
		return await StudyMongo.findMeShwoData(num)
	}

	/**
	 * 获取数据列表
	 * @param ctx 环境上下文
	 */
	static async all (ctx) {
		// 首先获取总个数
		return await StudyMongo.find(ctx.vals)
	}

	/**
	 * 获取详情数据
	 * @param ctx 环境上下文
	 */
	static async detail (ctx) {
		return await StudyMongo.findOne(ctx.vals.id)
	}

	/**
	 * 获取类型列表
	 * @param ctx 环境上下文
	 */
  static async typeDistinct () {
    return await StudyMongo.distinct('type')
  }

	/**
	 * 添加
	 * @param ctx 环境上下文
	 * @returns {Promise<void>}
	 */
	static async add (ctx) {
		return await StudyMongo.add(ctx.vals)
	}

	/**
	 * 修改
	 * @param ctx 环境上下文
	 * @returns {Promise<*>}
	 */
	static async update (ctx) {
		return await StudyMongo.update(ctx.vals)
	}

	/**
	 * 删除
	 * @param ctx 环境上下文
	 * @returns {Promise<*>}
	 */
	static async remove (ctx) {
		return await StudyMongo.deleteOne(ctx.vals.id)
	}
}

Server.mongo = StudyMongo

module.exports = Server
